package flex.persistence {
	public interface Query {
		/**
		 * Execute an update or delete statement.
		 */		
		function executeUpdate():int
		/**
		 * Execute a SELECT query and return the query results as a List.
		 */		
		function getResultList():Array
		/**
		 * Execute a SELECT query that returns a single result.
		 */		
		function getSingleResult():Object;
		/**
		 * Set the position of the first result to retrieve.
		 */		
		function setFirstResult(startPosition:int):Query;
		/**
		 * Set the flush mode type to be used for the query execution.
		 */		
		function setFlushMode(flushMode:FlushModeType):Query;
		/**
		 * Set an implementation-specific hint.
		 */		
		function setHint(hintName:String, value:Object):Query;
		/**
		 * Set the maximum number of results to retrieve.
		 */		
		function setMaxResults(maxResult:int):Query;
		/**
		 * Bind an argument to a positional parameter.
		 */		
		function setParameterByIndex(position:int, value:Object):Query;
		/**
		 * Bind an argument to a named parameter.
		 */		
		function setParameterByName(name:String, value:Object):Query;
		
		//pour des test
		function getSql():String;
	}
}